ListView的基本操作(新增、删除、全选、上移、下移)及热键操作
新增
我习惯写成一个子程序或函数,参数是数据内容,程序代码参考如下
删除
利用while循环去判断有没有选取,有选取的话就删除第一个的选取项目,如此就可以把所有选取的项目都删除
全选
用for循环把所有项目的Selected 属性改成True即可
上移
这跟ListBox的差别在于插入与删除的顺序,ListBox可以先Insert再RemoveAt,但是ListView在换位置的时候不能直接这样做,否则会出现错误

要解决这个问题可以加上Clone 方法,程序代码参考如下
Dim index As Integer = ListView1.SelectedIndices(0) Dim tmp As ListViewItem = ListView1.Items(index) ListView1.Items.Insert(index - 1, tmp.Clone()) ListView1.Items.RemoveAt(index + 1)或是将Insert与RemoveAt的顺序颠倒,程序代码参考如下
Dim index As Integer = ListView1.SelectedIndices(0) Dim tmp As ListViewItem = ListView1.Items(index) ListView1.Items.RemoveAt(index) ListView1.Items.Insert(index - 1, tmp)如果ListView要能MultiSelect,在做边界处理的时候就会遇到另一个棘手的问题,当全部的选取项目都集中在最上方(或最下方),会发生选取的项目开始彼此换位置,为了解决这个问题我又加了一个条件式(如果index-1被选取就不进行上移)去处理
Sub ListView1_MoveUp() '检查有没有选取项目 If ListView1.SelectedIndices.Count > 0 Then '用for循环由小到大去巡览 For i As Integer = 0 To ListView1.SelectedIndices.Count - 1 Dim index As Integer = ListView1.SelectedIndices(i) '如果index为第一项就不需要上移 If index > 0 Then '如果index-1被选取就不进行上移 If ListView1.SelectedIndices.Contains(index - 1) Then Continue For End If '进行换位置的动作 Dim tmp As ListViewItem = ListView1.Items(index) ListView1.Items.RemoveAt(index) ListView1.Items.Insert(index - 1, tmp) ListView1.Items(index - 1).Focused = True End If Next End If End Sub下移
这跟上移的作法差不多,只是index的地方有些不同
热键操作
在KeyDown事件中进行判断,范例中对应的按键与指令如表格,特别需要注意的是e.Handled = True,设定后就不会把按键继续送给操作系统处理
按键 指令
Delete 删除
Ctrl + A 全选
Ctrl + ↑ 上移
Ctrl + ↓ 下移
工程源码:

相关热词:
本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供用于网络技术学习参考,学习中请遵循相关法律法规!
本文地址: https://v30.fanwenzhu.com/jiaob/vbscript/9829.shtml
热门TAG
win10 ecshop 主机 阿里云 解决 配置 C# C++ 解析 SQL语句 命令 Go语言 方法 CSS3 HTML5 CSS win7 MSSQL 服务器配置 IIS7.5 IIS7 IIS6 IIS CentOS 7 Linux oracle数据库 oracle phpcms discuz discuz教程最新文章
-
利用DataGridView举办增删改
时间:2021-01-13
-
VB.NET简朴UDP联机措施
时间:2021-01-13
-
obj.ScaleMode)/s phgt = obj.Sc
时间:2021-01-13
-
机房收费系统之报表(二
时间:2020-12-28
-
VB.NET TextBox设定第几行选取
时间:2020-12-28
-
VB.NET 串口异步访问
时间:2020-12-27
-
限制字符串输入 正则表达
时间:2020-12-27
-
ListView的基本操作(新增、
时间:2020-12-27
热门文章
-
VB.NET 串口异步访问
时间:2020-12-27
-
VB.NET简朴UDP联机措施
时间:2021-01-13
-
机房收费系统系列四:上下机
时间:2020-12-26
-
obj.ScaleMode)/s phgt = obj.ScaleY(phgt
时间:2021-01-13
-
ListView的基本操作(新增、删除、全选、上
时间:2020-12-27
-
VB6系统打印常识
时间:2020-12-26
-
VB.NET TextBox设定第几行选取
时间:2020-12-28
-
VB.NET机房收费DataGridView与数据库的连接
时间:2020-12-26
-
Microsoft VBScript 编译器错误 错误 '800a03e9
时间:2020-12-23
-
机房收费系统之报表(二)
时间:2020-12-28
